package com.gd.iot.energy.service.dailymanage;

import com.baomidou.mybatisplus.extension.service.IService;
import com.gd.iot.energy.consts.SystemConsts;
import com.gd.iot.energy.po.systemadmin.AreaArchivesPO;
import com.gd.iot.energy.pojo.common.vo.PageVO;
import com.gd.iot.energy.pojo.systemadmin.dto.AreaArchivesSaveDTO;
import com.gd.iot.energy.pojo.systemadmin.vo.AreaArchivesPageVO;
import com.gd.iot.energy.pojo.systemadmin.vo.AreaArchivesVO;

import java.util.List;

/**
 * 营收管理
 */
public interface CustomerFeeService extends IService<AreaArchivesPO> {

    /**
     * 获取营收列表
     * @param customerSerialnumber
     * @param customerName
     * @param customerPhone
     * @param areaId
     * @param pageSize
     * @param pageNum
     * @param orderColumn
     * @param orderType
     * @param queryFeeType
     * @param customerFee
     * @return
     */
    PageVO<AreaArchivesPageVO> getAreaArchivesVOPage(String customerSerialnumber, String customerName,
                                                     String customerPhone, Integer areaId, Integer pageSize,
                                                     Integer pageNum, String orderColumn, String orderType,
                                                     SystemConsts.QueryFeeType queryFeeType, String customerFee);

    /**
     * 缴费详情
     * @param id
     * @return
     */
    AreaArchivesVO getAreaArchive(Long id);

    /**
     * 更新缴费
     * @param areaArchivesSaveDTO
     * @param chargeType 类型 缴费 退费等
     * @return
     */
    boolean updateAreaArchive(AreaArchivesSaveDTO areaArchivesSaveDTO, SystemConsts.ChargeType chargeType);

    /**
     * 通过参数查询档案
     * @param customerSerialnumber
     * @param customerName
     * @param customerType
     * @param areaId
     * @param archivesAddress
     * @return
     */
    List<AreaArchivesPO> selectByParams(String customerSerialnumber, String customerName, String customerType, Integer areaId, String archivesAddress);
}
